/*
 * PuanlamaYontemi.java
 */
package eDoktor.kararMekanizmasi;

import eDoktor.hastalik.Belirti;
import eDoktor.hastalik.Hastalik;
import eDoktor.hastalikGrubu.Cevap;
import java.util.Map;

/**
 * Puanlama yöntemi sınıfı
 * @author Onuralp
 */
public class PuanlamaYontemi implements KararYontemiArayuz {

    /**
     * Puanlama yöntemini karar verme aşamasında kullan.
     * @param vaka Vaka
     * @param hastalik Hastalık
     * @return Hastalığın görülme ihtimali
     */
    @Override
    public double degerlendir(Map<String, Cevap> vaka, Hastalik hastalik) {
        int belirtiSayisi = hastalik.getBelirtiler().size();
        double hastadaGorulenBelirtilerinSayisi = 0; 
        for (Belirti belirti : hastalik.getBelirtiler()) {
            String belirtiNo = (new Integer(belirti.getNo())).toString();
            Cevap cevap = vaka.get(belirtiNo);
            if (cevap.getOlasilik() >= 0.5) {
                hastadaGorulenBelirtilerinSayisi += cevap.getOlasilik();
            }
        }
        double sonuc = hastadaGorulenBelirtilerinSayisi/belirtiSayisi;
        return sonuc;
    }
}
